diff --exclude='*~' -urN libnids-1.20.orig/src/checksum.c libnids-1.20/src/checksum.c
--- libnids-1.20.orig/src/checksum.c	2005-02-23 21:18:28.227101168 -0500
+++ libnids-1.20/src/checksum.c	2005-02-23 21:21:56.665413728 -0500
@@ -50,6 +50,7 @@
 	movl 16(%esp),%ecx	# Function arg: int len
         movl 12(%esp),%esi	# Function arg: u_char *buff*/
 
+"	push %%ebx						\n"
 "	testl $2, %%esi						\n"		
 "	jz 2f							\n"			
 "	subl $2, %%ecx						\n"		
@@ -105,7 +106,7 @@
 "5:	movb (%%esi),%%cl					\n"
 "6:	addl %%ecx,%%eax					\n"
 "	adcl $0, %%eax						\n"
-"7: 								\n"
+"7: 	pop %%ebx						\n"
        : "=a"(sum), "=c"(len), "=S"(buff)
        : "0"(sum), "1"(len), "2"(buff)
        : "di", "dx" , "cc");
